МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу: «Системи запису та відтворення інформації»
на тему: «Дослідження методів обробки зображень в Matlab»
Варіант № 15
Львів – 2010
Мета роботи – ознайомитися з основними можливостями обробки зображень реалізованими в середовищі MatLab.
ЗАВДАННЯ
1. Ознайомитись з теоретичним матеріалом.
2. Завантажити файл вказаний в завданні відповідно до свого варіанту.
3. Вивести основну інформацію про графічний файл.
4. Накласти на зображення шуми gaussian, salt & pepper, speckle.
5. Провести лінійну фільтрацію зашумленого зображення фільтрами ‘average’, ‘gaussian’, ‘sobel’, ‘prewitt’, ‘unsharp’. Зробити висновки про ефективність фільтрів.
6. Провести медіанну фільтрацію. Зробити висновки про ефективність фільтру.
7. Написати програму збереження відфільтрованого зображення у bmp-файлі.
8. Переконатися у працездатності програми.
Варіант
Назва файлу
15
chess.tiff
Лістинг програми:
A = imread ('D:\Documents\Photo\chess.tiff');
info = imfinfo('D:\Documents\Photo\chess.tiff');
J = imnoise(A, 'gaussian');
imwrite (J,'D:\Documents\Лаброб 3\Gaus.jpeg');
h1 = fspecial ('average');
h2 = fspecial ('gaussian');
h3 = fspecial ('sobel');
h4 = fspecial ('prewitt');
h5 = fspecial ('unsharp');
J1 = imfilter(J,h1);
imwrite (J1,'D:\Documents \Лаброб 3\Gaus_Av.jpeg');
J2 = imfilter(J,h2);
imwrite (J2,'D:\Documents \Лаброб 3\Gaus_Gu.jpeg');
J3 = imfilter(J,h3);
imwrite (J3,'D:\Documents \Лаброб 3\Gaus_So.jpeg');
J4 = imfilter(J,h4);
imwrite (J4,'D:\Documents\Лаброб 3\Gaus_Pr.jpeg');
J5 = imfilter(J,h5);
imwrite (J5,'D:\Documents\Лаброб 3\Gaus_Un.jpeg');
I = imnoise(A,'salt & pepper');
imwrite (I,'D:\Documents \Лаброб 3\S&P.jpeg');
h6 = fspecial ('average');
h7 = fspecial ('gaussian');
h8 = fspecial ('sobel');
h9 = fspecial ('prewitt');
h10 = fspecial ('unsharp');
J6 = imfilter(I,h6);
imwrite (J6,'D:\Documents\Лаброб 3\S&P_Av.jpeg');
J7 = imfilter(I,h7);
imwrite (J7,'D:\Documents \Лаброб 3\S&P_Gu.jpeg');
J8 = imfilter(I,h8);
imwrite (J8,'D:\Documents \Лаброб 3\S&P_So.jpeg');
J9 = imfilter(I,h9);
imwrite (J9,'D:\Documents\Лаброб 3\S&P_Pr.jpeg');
J10 = imfilter(I,h10);
imwrite (J10,'D:\Documents\Лаброб 3\S&P_Un.jpeg');
Y= imnoise(A,'speckle');
imwrite (Y,'D:\Documents\Лаброб 3\Sp.jpeg');
h11 = fspecial ('average');
h12 = fspecial ('gaussian');
h13 = fspecial ('sobel');
h14 = fspecial ('prewitt');
h15 = fspecial ('unsharp');
J11 = imfilter(Y,h11);
imwrite (J11,'D:\Documents\Лаброб 3\Sp_Av.jpeg');
J12 = imfilter(Y,h12);
imwrite (J12,'D:\Documents\Лаброб 3\Sp_Gu.jpeg');
J13 = imfilter(Y,h13);
imwrite (J13,'D:\Documents\Лаброб 3\Sp_So.jpeg');
J14 = imfilter(Y,h14);
imwrite (J14,'D:\Documents\Лаброб 3\Sp_Pr.jpeg');
J15 = imfilter(Y,h15);
imwrite (J15,'D:\Documents\Лаброб 3\Sp_Un.jpeg');
B = medfilt2(J, [2,4]);
imwrite (B,'D:\Documents\Лаброб 3\Lin_Ga.jpeg');
B2 = medfilt2(I, [2,4]);
imwrite (B2,'D:\Documents\Лаброб 3\Lin_S&P.jpeg');
B3 = medfilt2(Y, [2,4]);
imwrite (B3,'D:\Documents \Лаброб 3\Lin_Sp.jpeg');
I = imread('D:\Documents\Лаброб 3\Photo\chess.tiff');
[m,n] = size(I);
H_I = m;
W_I = n;
W_Real = W_I+(W_I-fix(W_I/4)*4);
File_Size = 54+W_Real*H_I+256*4;
Image_Size = W_Real*H_I;
Offset = 54+256*4;
d = fopen('D:\Documents \Лаброб 3\SAV.bmp','wb');
fwrite(d,'B','uchar');
fwrite(d,'M','uchar');
fwrite(d,File_Size,'int32');
fwrite(d,0, 'int16');
fwrite(d,0, 'int16');
fwrite(d,Offset, 'int32');
fwrite(d,40,'int32');
fwrite(d,W_I,'int32');
fwrite(d,H_I,'int32');
fwrite(d,1,'int16');
fwrite(d,8,'int16');
fwrite(d,0,'int32');
fwrite(d,Image_Size,'int32');
fwrite(d,0,'int32');
fwrite(d,0,'int32');
fwrite(d,256,'int32');
fwrite(d,256,'int32');
for ii = 0:255
Temp = [ii ii ii 255];
fwrite(d,Temp,'uchar');
end;
Temp = zeros(1,W_Real);
for ii = H_I:-1:1
Temp(1:W_I) = I(ii,1:W_I);
fwrite(d,Temp, 'uchar');
fclose(d);
Графіки:
...